\subsection{Découverte d'outils}

Pendant le projet j'ai pu découvrir divers outils qui m'ont grandement aidé d'un point de vue génie logiciel. Ce sont des outils qui m'ont permis d'acquérir une technique de programmation efficace et d'avoir un code le plus propre possible.
\\
\\

\subsubsection{Un débogueur}

Valgrind est un débogueur, que j'ai eu le temps d'utiliser et d'en approfondir l'utilisation. Avec cet outil j'ai pu avoir la confirmation que le programme n'avait pas de fuite mémoire. Il m'a permis également entre autres d'avoir un profilage de mon code, j'ai pu en conséquence modifier le programme pour l'optimiser. Ce dernier point m'a poussé en savoir plus sur cette technique et j'ai découvert Gprof qui effectue la même chose mais de manière plus précise.  
\\
\\

\subsubsection{Un gestionnaire de version}

Subversion ou SVN est un outil qui permet de gérer les différentes versions d'un projet. On peut à tout moment récupérer toutes les versions du projet, mais aussi voir les différences entre deux versions distinctes. L'intérêt principal est de pouvoir travailler à plusieurs sur le même projet, même si ça reste intéressant lorsqu'on est tout seul.
\\
\\
\\
\\

La configuration principale de SVN se base sur un système client(s) / serveur :
\\
\\
\begin{figure}[h]
\begin{center}
\includegraphics[scale=0.7]{../imports/client_serveur.png}
\caption{\label{struct_arn} Configuration SVN}
\end{center}
\end{figure}
\\
\\

Lors d'une première utilisation le client fait ce qu'on appelle un \textit{checkout}, permettant de récupérer le code du serveur et créer un espace local pour le projet. Ensuite, après modification il peut faire un textit{commit} qui va envoyer sur le serveur les modifications ou un \textit{up} qui récupère les modifications des autres. 
\\
\\
\begin{figure}[h]
\begin{center}
\includegraphics[scale=0.7]{../imports/fonctionnement_svn.png}
\caption{\label{struct_arn} Fonctionnement de SVN}
\end{center}
\end{figure}
\\
\\
\newpage
C'est un outil que j'ai trouvé très utile, mais j'ai opté de m'habituer, pour mes projets futurs, avec un autre gestionnaire de version \textit{git} qui est un gestionnaire de version également mais décentralisé et donc permet de faire des \textit{commit} vers un client.
